予測スケールをサポートしたEC2オートスケールの予測内容を検証してみた
AWSチームのすずきりょうです。
2021年5月のEC2オートスケールのアップデートで、予測スケーリング (Predictive scaling policies)がサポートされました。
EC2オートスケールを利用中の環境で予測スケールの設定を行い、予測と実績値の差から予測精度を確認する機会がありましたので、紹介させていただきます。
予測スケーリング設定
EC2ダッシュボード
- Auto Scaling グループ設定に、予測スケーリング(Predictive scaling policies) の項目が追加されました。
ポリシー作成
「Scale basee on forecast」はオフ、EC2のスケールアウトは行わず、予測精度の評価のみを行う設定としました。
オートスケールのしきい値は既存のターゲット追跡スケーリングの設定を踏襲しました。
しきい値は、
- CPU使用率 (CPU)
- ネットワーク通信量 (Network In、Network Out)
- ターゲット毎の ALBリクエスト数 (Application Load Balancer request count per target)
と、その組み合わせ(Custom metric pair)が指定可能です。
結果
予測スケーリングを設定後、4日間(木、金、土、日)の予測値(Historic forecast)と、実績値(Actual)の差異を確認しました。
対象1
- 1週間グラフ
- 2週間グラフ
対象2
- 1週間グラフ
- 2週間グラフ
まとめ
従来より、AWS Autoscallingの機能としてEC2台数の予測スケールは利用可能でしたが、 予測結果がEC2オートスケールのスケジュール設定として登録される仕様のため、手動のスケジュール設定と共存しにくい。 ELBのリクエスト数をターゲットとして利用できない。 などの課題がありました。
予想値を元にオートスケールを発動させることで、特定日時の時間帯にアクセス急増が発生しやすいシステムでは、 適切なEC2台数の維持がより実現しやすくなる事が期待できます。 実際に予測スケールを利用した結果については、まとまり次第改めて報告させて頂きたいと思います。